home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / mkmf / mkmf.top < prev    next >
Text File  |  1992-06-10  |  2KB  |  69 lines

  1. #!/sprite/cmds/csh -f
  2. #
  3. # A script to generate (or regenerate) a Makefile for a top-level
  4. # directory for commands, libraries, etc.  The assumption is that this
  5. # direcctory is nothing more than a container for lots of subdirectories
  6. # that have the interesting stuff in them.
  7. #
  8. # If a file named ./Makefile.proto exists, use it as the prototype for
  9. # the Makefile, else use a common prototype.
  10. #
  11. # We assume we were invoked from mkmf.
  12. #
  13. # Parameters passed in from mkmf as environment variables:
  14. #    MKMFDIR        directory containing prototype makefiles
  15. #    MAKEFILE    name of makefile to create
  16. #    MACHINES    list of machine names (e.g. "sun2 sun3"), for
  17. #            which there are machine-dependent subdirectories
  18. #            (sun3.md, spur.md, etc.) of this directory.
  19. #    SUBTYPE        information about the type makefile
  20. #
  21. # $Header: /sprite/lib/mkmf/RCS/mkmf.top,v 1.14 92/06/10 13:04:41 jhh Exp $ (SPRITE) Berkeley
  22. #
  23.  
  24. #
  25. # Argument processing.  (Generalized form, even though just one flag so far.)
  26. #
  27. while ($#argv >= 1)
  28.     if ("$1" == '-x') then
  29.     set echo
  30.     endif
  31.     shift
  32. end
  33.  
  34. set subtype=$SUBTYPE
  35. set name=$cwd:t
  36. set machines=($MACHINES)
  37. set makefile=$MAKEFILE
  38. set distdir=($DISTDIR)
  39.  
  40. if (-e $makefile.proto) then
  41.     set proto=$makefile.proto
  42. else
  43.     set proto="${MKMFDIR}/Makefile.top"
  44. endif
  45.  
  46. echo "Generating $makefile for $cwd using $proto"
  47.  
  48. rm -f mkmf.subdirs~
  49. find * -type d ! -name \*.md ! -name RCS -prune -print |tr '\012' ' ' |sed -e 's/ $//' > mkmf.subdirs~
  50.  
  51. if (-z mkmf.subdirs~) then
  52.     echo "No subdirectories found."
  53. endif
  54. rm -f mkmf.sed~ mkmf.sed2~
  55. echo "s,@(SUBDIRS)," > mkmf.sed~
  56. echo ",g" >> mkmf.subdirs~
  57. cat mkmf.sed~ mkmf.subdirs~ | tr -d '\012' > mkmf.sed2~
  58.  
  59. cat $proto | sed -f mkmf.sed2~\
  60.     -e "s,@(DATE),`date`,g" \
  61.     -e "s,@(MACHINES),$machines,g" \
  62.     -e "s,@(MAKEFILE),$makefile,g" \
  63.     -e "s,@(NAME),$name,g" \
  64.     -e "s,@(TEMPLATE),$proto,g" \
  65.     -e "s,@(DISTDIR),$distdir,g" \
  66.     -e "s,@(TYPE),$subtype,g" \
  67.     > $makefile
  68. rm -f mkmf.sed~ mkmf.sed2~ mkmf.subdirs~
  69.